<?
/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Establecimiento_exe( $this );

	class Establecimiento_exe extends Exe
	{
	function Establecimiento_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
	function sendEmail()
	{
	}
		function updateOrder()
		{
			$nCambiarOrden = getParam('nCambiarOrden');
			$ncEstablecimiento= getParam('ncEstablecimiento');
			$ncRotulo = getParam('ncRotulo');
			$nOrden = getParam('nOrden');
			if ( $nCambiarOrden  && $ncEstablecimiento && $ncRotulo && $nOrden  )
			{
				$nNuevoOrden = $nOrden + $nCambiarOrden;
				$this->oDatabase->update("gtEstablecimientoRotulo"
								,"nOrden", $nOrden
								,"WHERE"
								 ,"ncRotulo", $ncRotulo
								 ,"nOrden", $nNuevoOrden );
				$this->oDatabase->update("gtEstablecimientoRotulo"
								,"nOrden", $nNuevoOrden
								,"WHERE"
								 ,"ncRotulo", $ncRotulo
								 ,"ncEstablecimiento", $ncEstablecimiento );
			}
		}
	function updateStar()
		{
			$ncEstablecimiento = getParam( 'ncEstablecimiento' );
			$bEstrella = getParam( 'bEstrella' );
			if ( $ncEstablecimiento )
			{
				$this->oDatabase->update( "gtEstablecimiento", "bEstrella", $bEstrella, "WHERE", "ncEstablecimiento", $ncEstablecimiento );
			}
		}
	function updateTag()
		{
			$ncEstablecimiento = getParam( 'ncEstablecimiento' );
			$ncRotulo = getParam( 'ncRotulo' );
			$cNewItem = getParam( 'newItem' );
			if ( $cNewItem )
			{
				$ncRotulo = $this->oDatabase->nextKey( "gtRotuloEstablecimiento", "ncRotulo" );
				$bOk = $this->oDatabase->insert( "gtRotuloEstablecimiento",
										"ncRotulo", $ncRotulo, "cdRotulo", $cNewItem );
			}
			if ( $ncEstablecimiento && $ncRotulo )
			{
				$bOk = $this->oDatabase->insert( "gtEstablecimientoRotulo",
										"ncRotulo", $ncRotulo, "ncEstablecimiento", $ncEstablecimiento );
				$this->oDatabase->update( "gtEstablecimiento", "dModificacion", Date("Y-m-d"), "WHERE", "ncEstablecimiento", $ncEstablecimiento );
			}
		}
	// MODIFICAR_UN_ESTABLECIMIENTO:
	function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Establecimiento_frm' );
			// Agrega o Modifica el Domicilio
			$oModAdministracion =& loadModule('administracion');
			$oModAdministracion->setSubModule('entidades');
			$oDomicilio = $oModAdministracion->loadClass( 'Domicilio_exe' );
			$ncDomicilio = $oDomicilio->save();
			extract( $oForm->getFieldArray() );
			$this->oDatabase->beginTran();
			if ( $ncDomicilio  )
				$bOk = $this->oDatabase->update( "gtEstablecimiento",
									"cdEstablecimiento", $cdEstablecimiento,
									"cEmail", $cEmail,
									"cEmailContacto", $cEmailContacto,
									"ncOrganizacion", $ncOrganizacion,
									"cHorarios", $cHorarios,
									"ncEstablecimientoPadre", $ncEstablecimientoPadre,
									"cObservaciones", $cObservaciones,
									"ncUsuario", $this->oModule->oUserSession->getUser(),
									"dModificacion", Date("Y-m-d"),
									"cPaginaWeb", $cPaginaWeb,
									"cEntrada", $cEntrada, 
									"ncDomicilio", $ncDomicilio,
									"ncEstadoPublicacion", $ncEstadoPublicacion,
									"WHERE", "ncEstablecimiento", $ncEstablecimiento );
			else
				$bOk = $this->oDatabase->update( "gtEstablecimiento",
									"cdEstablecimiento", $cdEstablecimiento,
									"cEmail", $cEmail,
									"cEmailContacto", $cEmailContacto,
									"ncOrganizacion", $ncOrganizacion,
									"cHorarios", $cHorarios,
									"ncEstablecimientoPadre", $ncEstablecimientoPadre,
									"cObservaciones", $cObservaciones,
									"ncUsuario", $this->oModule->oUserSession->getUser(),
									"dModificacion", Date("Y-m-d"),
									"cPaginaWeb", $cPaginaWeb,
									"cEntrada", $cEntrada, 
									"ncEstadoPublicacion", $ncEstadoPublicacion,
									"WHERE", "ncEstablecimiento", $ncEstablecimiento );
			if ( !$bOk ) return $this->oDatabase->rollBackTran();
			// Actualiza las Formas de Pago
				$bOk = $this->oDatabase->delete( "gtEstablecimientoFormaPago", "ncEstablecimiento", $ncEstablecimiento );
				if ( !$bOk ) return  $this->oDatabase->rollBackTran();
				$bOk = $this->oDatabase->delete( "gtEstablecimientoRotulo", "ncEstablecimiento", $ncEstablecimiento );
				if ( !$bOk ) return  $this->oDatabase->rollBackTran();
				$aFormaPago = $oForm->aFields['aFormaPago']->getValue();
				foreach ( $aFormaPago as $ncFormaPago )
				{
					$bOk = $this->oDatabase->insert( "gtEstablecimientoFormaPago",
											"ncFormaPago", $ncFormaPago,
											"ncEstablecimiento", $ncEstablecimiento );
					if ( !$bOk ) return  $this->oDatabase->rollBackTran();
				}
				// Agrega los rotulos
				$aRotulo = $oForm->aFields['aRotulo']->getValue();
				foreach ( $aRotulo as $ncRotulo )
				{
					$bOk = $this->oDatabase->insert( "gtEstablecimientoRotulo",
											"ncRotulo", $ncRotulo,
											"ncEstablecimiento", $ncEstablecimiento );
					if ( !$bOk ) return  $this->oDatabase->rollBackTran();
				}
			// Actualiza los Idiomas
				$bOk = $this->oDatabase->delete( "gtEstablecimientoIdioma", "ncEstablecimiento", $ncEstablecimiento );
				if ( !$bOk ) return  $this->oDatabase->rollBackTran();
				$aIdioma = $oForm->aFields['aIdiomas']->getValue();
				foreach ( $aIdioma as $ncIdioma )
				{
					$bOk = $this->oDatabase->insert( "gtEstablecimientoIdioma",
											"ncIdioma", $ncIdioma,
											"ncEstablecimiento", $ncEstablecimiento );
					if ( !$bOk ) return  $this->oDatabase->rollBackTran();
				}
			$this->oDatabase->commitTran();
			$this->setInputData(  $ncEstablecimiento, $cdEstablecimiento );
			$oForm->reset();
		}
	// AGREGAR_UN_ESTABLECIMIENTO:
	function insert( $bSoloAccion = false )
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Establecimiento_frm' );
			extract( $oForm->getFieldArray() );
			// Agrega o Modifica el Domicilio
			$oModAdministracion =& loadModule( 'administracion' );
			$oModAdministracion->setSubModule( 'entidades' );
			$oDomicilio = $oModAdministracion->loadClass( 'Domicilio_exe' );
			$ncDomicilio = $oDomicilio->save();
			if ( !$ncDomicilio && !$ncEstablecimientoPadre)
			{
				addMessage("No se puede agregar un establecimiento sin domicilio");
				return false;
			}
			$ncEstablecimiento = $this->oDatabase->nextKey( "gtEstablecimiento", "ncEstablecimiento" );
			$this->oDatabase->insert( "gtEstablecimiento",
									"cdEstablecimiento", $cdEstablecimiento,
									"cEmail", $cEmail,
									"cEmailContacto", $cEmailContacto,
									"ncOrganizacion", $ncOrganizacion,
									"cHorarios", $cHorarios,
									"ncEstablecimientoPadre", $ncEstablecimientoPadre,
									"cObservaciones", $cObservaciones,
									"ncUsuario", $this->oModule->oUserSession->getUser(),
									"dDesde", Date("Y-m-d"),
									"dModificacion", Date("Y-m-d"),
									"ncEstadoPublicacion", $ncEstadoPublicacion,
									"cPaginaWeb", $cPaginaWeb,
									"ncDomicilio", $ncDomicilio,
									"ncEstablecimiento", $ncEstablecimiento );
			// Agrega las Formas de Pago
				$aFormaPago = $oForm->aFields['aFormaPago']->getValue();
				foreach ( $aFormaPago as $ncFormaPago )
				{
					$this->oDatabase->insert( "gtEstablecimientoFormaPago",
											"ncFormaPago", $ncFormaPago,
											"ncEstablecimiento", $ncEstablecimiento );
				}
			// Agrega los rotulos
				$aRotulo = $oForm->aFields['aRotulo']->getValue();
				foreach ( $aRotulo as $ncRotulo )
				{
					$bOk = $this->oDatabase->insert( "gtEstablecimientoRotulo",
											"ncRotulo", $ncRotulo,
											"ncEstablecimiento", $ncEstablecimiento );
				}
			// Agrega los Idiomas
				$aIdioma = $oForm->aFields['aIdiomas']->getValue();
				foreach ( $aIdioma as $ncIdioma )
				{
					$this->oDatabase->insert( "gtEstablecimientoIdioma",
											"ncIdioma", $ncIdioma,
											"ncEstablecimiento", $ncEstablecimiento );
				}
			if ( $ncFuncion )
			{
				$this->oDatabase->insert("gtEstablecimientoFuncion",
							"ncEstablecimiento", $ncEstablecimiento,
							"ncCategoriaEstablecimiento", $ncCategoriaEstablecimiento,
							"bActivo", true,
							"ncFuncion", $ncFuncion );
			}
			if ( $bSoloAccion == false )
			{
				$this->setInputData(  $ncEstablecimiento, $cdEstablecimiento );
			}
			//addMessage('El establecimiento fue agregado con exito');
			return $ncEstablecimiento;
		}
	// ELIMINAR_UN_ESTABLECIMIENTO
	function delete()
		{
			$ncEstablecimiento = getParam( 'ncEstablecimiento' );
			if ( $ncEstablecimiento )
			{
				$this->oDatabase->update( "gtEstablecimiento", "ncEstadoPublicacion", 4, "dModificacion", Date("Y-m-d") ,  "ncUsuario", $this->oModule->oUserSession->getUser(), "WHERE", "ncEstablecimiento", $ncEstablecimiento );
				addMessage('Se elimino el establecimiento');
			}
		}
	}
/*
function publish()
		{
			$oDatabaseWeb = openDB( DB_MYSQL , '10.10.1.83', 'st', 'sclaros' , 'jamonyqueso');
			$oDatabaseWeb->connect();
			$ncFuncion = getParam("ncFuncion");
			// Crea el Objeto Domicilio
				$oModAdministracion =& loadModule('administracion');
				$oModAdministracion->setSubModule('entidades');
				$oDomicilio = $oModAdministracion->loadClass( 'Domicilio_frm' );
			if ( $ncFuncion == -1)
			{
				$ok = $oDatabaseWeb->execute("delete from st.tur_estab_servicios");
				$ok = $oDatabaseWeb->execute("delete from st.tur_estab_actividades");
				$ok = $oDatabaseWeb->execute("delete from st.tur_establecimiento");
				$cSql = "select a.ncEstablecimiento, a.cHorarios,  a.cEntrada, a.cObservaciones, ncDomicilio, a.cdEstablecimiento, a.cEmail, a.cPaginaWeb
						from gtEstablecimiento as a
						WHERE bBaja = 0";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$oDomicilio ->setValue( $oRecordset->aFields["ncDomicilio"] );
					$cTelefono = ( $oDomicilio->aFields["cPrefijoTelefono"]->getValue() && $oDomicilio->aFields["cTelefono"]->getValue()  ) ? "(" . $oDomicilio->aFields["cPrefijoTelefono"]->getValue() . ") ". $oDomicilio->aFields["cTelefono"]->getValue() :  $oDomicilio->aFields["cTelefono"]->getValue();
					list( $ncPais, $ncUbicacion ) = explode("|", $oDomicilio->aFields["ncUbicacion"]->getValue() );
					if ( $ncUbicacion  > 600 &&  $ncUbicacion  <= 647 )  $ncUbicacion  =  $ncUbicacion - 600;
					elseif ( $ncUbicacion  ==  157 )  $ncUbicacion  =  49;
					elseif ( $ncUbicacion  == 648 )  $ncUbicacion  =  51;
					elseif ( $ncUbicacion  == 65 || $ncUbicacion  == 2 || $ncUbicacion  == 122 )  $ncUbicacion  =  50;
					else	$ncUbicacion  =  "";
					$cDireccion = $oDomicilio->aFields["cCalle"]->getValue() ? $oDomicilio->aFields["cCalle"]->getValue(): $oDomicilio->getDescription();
					$bOk  = $oDatabaseWeb->insert("tur_establecimiento",
							"id", $oRecordset->aFields["ncEstablecimiento"],
							"nombre", $oRecordset->aFields["cdEstablecimiento"],
							"direccion", $cDireccion,
							"altura", $oDomicilio->aFields["nNumero"]->getValue() ? $oDomicilio->aFields["nNumero"]->getValue(): 0,
							"piso", $oDomicilio->aFields["cPiso"]->getValue(),
							"dpto", $oDomicilio->aFields["cDepto"]->getValue(),
							"idBarrio",$ncUbicacion ,
							"apertura", $oRecordset->aFields["dApertura"],
							"horarios", $oRecordset->aFields["cHorarios"],
							"observaciones", $oRecordset->aFields["cObservaciones"],
							"web", $oRecordset->aFields["cPaginaWeb"],
							"email", $oRecordset->aFields["cEmail"],
							"activo", 1 ); //						"postal", $oRecordset->aFields["cPostal"],
				}
				$i = 0;
				$cSql = "select ncEstablecimiento, ncServicio
						from gtEstablecimientoServicio";
				$oRecordsetB = $this->oDatabase->recordset($cSql);
				while ( $oRecordsetB->moveNext() )
				{
					$bOk  = $oDatabaseWeb->insert("tur_estab_servicio",
							'id', $id++,
							"idEstablecimiento", $oRecordsetB->aFields["ncEstablecimiento"],
							"idServicio", $oRecordsetB->aFields["ncServicio"] );
				}
				$i = 0;
				$cSql = "select ncEstablecimiento, ncFuncion
						from gtEstablecimientoFuncion";
				$oRecordsetC = $this->oDatabase->recordset($cSql);
				while ( $oRecordsetC->moveNext() )
				{
					$bOk  = $oDatabaseWeb->insert("tur_estab_actividad",
							'id', $id++,
							"idEstablecimiento", $oRecordsetC->aFields["ncEstablecimiento"],
							"idActividad", $oRecordsetC->aFields["ncFuncion"] );
				}
				addMessage("Se termino de publicar los establecimientos");
			}

			if ( $ncFuncion == 6 || $ncFuncion == 58 )
			{
				$oDatabaseWeb->execute("delete from tur_chicos");
				$cSql = "select i.ncFuncion, a.ncEstablecimiento, a.cHorarios,  a.cEntrada, i.cObservaciones, ncDomicilio, a.cdEstablecimiento, a.cEmail, a.cPaginaWeb, ncCategoriaEstablecimiento, bActivo
						from gtEstablecimiento as a
						join gtEstablecimientoFuncion as i
							on i.ncEstablecimiento = a.ncEstablecimiento
							and ncFuncion in ( $ncFuncion, 58)
						WHERE bBaja = 0";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$oDomicilio ->setValue( $oRecordset->aFields["ncDomicilio"] );
					if ( $oRecordset->aFields["ncFuncion"] == 58 )
						$idCategoria = 11;
					else
						$idCategoria = $oRecordset->aFields["ncCategoriaEstablecimiento"];

					$cTelefono = ( $oDomicilio->aFields["cPrefijoTelefono"]->getValue() && $oDomicilio->aFields["cTelefono"]->getValue()  ) ? "(" . $oDomicilio->aFields["cPrefijoTelefono"]->getValue() . ") ". $oDomicilio->aFields["cTelefono"]->getValue() :  $oDomicilio->aFields["cTelefono"]->getValue();
					list( $ncPais, $ncUbicacion ) = explode("|", $oDomicilio->aFields["ncUbicacion"]->getValue() );
					if ( $ncUbicacion  > 600 &&  $ncUbicacion  <= 647 )  $ncUbicacion  =  $ncUbicacion - 600;
					elseif ( $ncUbicacion  ==  157 )  $ncUbicacion  =  49;
					elseif ( $ncUbicacion  == 648 )  $ncUbicacion  =  51;
					elseif ( $ncUbicacion  == 2 || $ncUbicacion  == 122 )  $ncUbicacion  =  50;
					else	$ncUbicacion  =  "";
					$bOk  = $oDatabaseWeb->insert("tur_chicos",
							"id", $oRecordset->aFields["ncEstablecimiento"],
							"nombre", $oRecordset->aFields["cdEstablecimiento"],
							"direccion", $oDomicilio->getDescription(),
							"altura", '',
							"idBarrio",$ncUbicacion ,
							"idCategoria", $idCategoria,
							"entrada", transalteEntrada( $oRecordset->aFields["cEntrada"], "es" ),
							"descripcion_es", extractLanguage( $oRecordset->aFields["cObservaciones"], "es" ),
							"descripcion_en", extractLanguage( $oRecordset->aFields["cObservaciones"], "en" ),
							"descripcion_pt", extractLanguage( $oRecordset->aFields["cObservaciones"], "pt" ),
							"telefono", $cTelefono,
							"email", $oRecordset->aFields["cEmail"],
							"web", $oRecordset->aFields["cPaginaWeb"],
							"activo", $oRecordset->aFields["bActivo"] ); //						"postal", $oRecordset->aFields["cPostal"],
				}
			}
			if ( $ncFuncion == 25 || $ncFuncion == 59 || $ncFuncion ==60 || $ncFuncion ==61 || $ncFuncion ==70|| $ncFuncion ==71)
			{
				$oDatabaseWeb->execute("delete from tur_tango");
				$cSql = "select a.ncEstablecimiento, i.ncFuncion, ifnull(i.cHorarios, a.cHorarios) as cHorarios, nRegistroPrestadores, a.cEntrada, a.cObservaciones as cColectivos,i.cObservaciones, ncDomicilio, a.cdEstablecimiento, a.cEmail, a.cPaginaWeb, bActivo
						from gtEstablecimiento as a
						join gtEstablecimientoFuncion as i
							on i.ncEstablecimiento = a.ncEstablecimiento
							and ncFuncion in ( 25, 59, 60, 61, 70, 71)
						WHERE bBaja = 0
						and a.ncEstablecimiento not in (SELECT ncEstablecimiento FROM gtEstablecimientoRotulo WHERE ncRotulo in (3,2,8) )";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$oDomicilio ->setValue( $oRecordset->aFields["ncDomicilio"] );

					$cTelefono = ( $oDomicilio->aFields["cPrefijoTelefono"]->getValue() && $oDomicilio->aFields["cTelefono"]->getValue()  ) ? "(" . $oDomicilio->aFields["cPrefijoTelefono"]->getValue() . ") ". $oDomicilio->aFields["cTelefono"]->getValue() :  $oDomicilio->aFields["cTelefono"]->getValue();
					list( $ncPais, $ncUbicacion ) = explode("|", $oDomicilio->aFields["ncUbicacion"]->getValue() );
					if ( $ncUbicacion  > 600 &&  $ncUbicacion  <= 647 )  $ncUbicacion  =  $ncUbicacion - 600;
					elseif ( $ncUbicacion  ==  157 )  $ncUbicacion  =  49;
					elseif ( $ncUbicacion  == 648 )  $ncUbicacion  =  51;
					elseif ( $ncUbicacion  == 2 || $ncUbicacion  == 122 )  $ncUbicacion  =  50;
					else	$ncUbicacion  =  "";
					$aCategoria = array( '25' => 1, '59' => 3, '60' => 4, '61' => 6, '70' => 9, '71' => 10);
					$idCategoria = $aCategoria[$oRecordset->aFields["ncFuncion"]];
					$bOk  = $oDatabaseWeb->insert("tur_tango",
							"id", $oRecordset->aFields["ncEstablecimiento"],
							"nombre", $oRecordset->aFields["cdEstablecimiento"],
							"direccion", $oDomicilio->getDescription(),
							"altura", '',
							"idBarrio",$ncUbicacion ,
							"idcategoria", $idCategoria,
							"Registro_Prestadores",  $oRecordset->aFields["nRegistroPrestadores"],
							"telefono", $cTelefono,
							"email", $oRecordset->aFields["cEmail"],
							"web", $oRecordset->aFields["cPaginaWeb"],
							"horarios_es", transalteHorario($oRecordset->aFields["cHorarios"], 'es'),
							"horarios_en", transalteHorario($oRecordset->aFields["cHorarios"], 'en'),
							"horarios_pt", transalteHorario($oRecordset->aFields["cHorarios"], 'pt'),
							"activo", $oRecordset->aFields["bActivo"] ); //						"postal", $oRecordset->aFields["cPostal"],
				}
				addMessage("Se termino de publicar la base de tango");
			}
			if ( $ncFuncion == 26)
			{
				$oDatabaseWeb->execute("delete from tur_teatros");
				$cSql = "select a.ncEstablecimiento, a.cHorarios,  a.cEntrada, a.cObservaciones as cColectivos,i.cObservaciones, ncDomicilio, a.cdEstablecimiento, a.cEmail, a.cPaginaWeb, ncCategoriaEstablecimiento, bActivo
						from gtEstablecimiento as a
						join gtEstablecimientoFuncion as i
							on i.ncEstablecimiento = a.ncEstablecimiento
							and ncFuncion = $ncFuncion
						WHERE bBaja = 0
						and a.ncEstablecimiento not in (SELECT ncEstablecimiento FROM gtEstablecimientoRotulo WHERE ncRotulo in (3,2,8) )						";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$oDomicilio ->setValue( $oRecordset->aFields["ncDomicilio"] );

					$cTelefono = ( $oDomicilio->aFields["cPrefijoTelefono"]->getValue() && $oDomicilio->aFields["cTelefono"]->getValue()  ) ? "(" . $oDomicilio->aFields["cPrefijoTelefono"]->getValue() . ") ". $oDomicilio->aFields["cTelefono"]->getValue() :  $oDomicilio->aFields["cTelefono"]->getValue();
					list( $ncPais, $ncUbicacion ) = explode("|", $oDomicilio->aFields["ncUbicacion"]->getValue() );
					if ( $ncUbicacion  > 600 &&  $ncUbicacion  <= 647 )  $ncUbicacion  =  $ncUbicacion - 600;
					elseif ( $ncUbicacion  ==  157 )  $ncUbicacion  =  49;
					elseif ( $ncUbicacion  == 648 )  $ncUbicacion  =  51;
					elseif ( $ncUbicacion  == 2 || $ncUbicacion  == 122 )  $ncUbicacion  =  50;
					else	$ncUbicacion  =  "";
					$bOk  = $oDatabaseWeb->insert("tur_teatros",
							"id", $oRecordset->aFields["ncEstablecimiento"],
							"nombre", $oRecordset->aFields["cdEstablecimiento"],
							"direccion", $oDomicilio->getDescription(),
							"idBarrio",$ncUbicacion ,
							"idcatteatro", $oRecordset->aFields["ncCategoriaEstablecimiento"],
							"colectivos", $oRecordset->aFields["cColectivos"],
							"observaciones", $oRecordset->aFields["cObservaciones"],
							"telefono", $cTelefono,
							"email", $oRecordset->aFields["cEmail"],
							"web", $oRecordset->aFields["cPaginaWeb"],
							"horario", transalteHorario($oRecordset->aFields["cHorarios"], 'es'),
							"activo", $oRecordset->aFields["bActivo"] ); //						"postal", $oRecordset->aFields["cPostal"],
				}
				addMessage("Se termino de publicar los teatros");
			}
			if ( $ncFuncion == 13)
			{
				$oDatabaseWeb->execute("delete from tur_expos_organizadores");
				$cSql = "select i.ncFuncion, a.ncEstablecimiento, nRegistroPrestadores, a.cHorarios,  a.cEntrada, i.cObservaciones as visitas, a.cObservaciones, ncDomicilio, a.cdEstablecimiento, a.cEmail, a.cPaginaWeb, ncCategoriaEstablecimiento, bActivo
						from gtEstablecimiento as a
						join gtEstablecimientoFuncion as i
							on i.ncEstablecimiento = a.ncEstablecimiento
							and ncFuncion in ( 54, 13)
						WHERE bBaja = 0";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$oDomicilio ->setValue( $oRecordset->aFields["ncDomicilio"] );
					$cDireccion = $oDomicilio->aFields["cCalle"]->getValue() ? $oDomicilio->aFields["cCalle"]->getValue(): $oDomicilio->getDescription();
					$cTelefono = ( $oDomicilio->aFields["cPrefijoTelefono"]->getValue() && $oDomicilio->aFields["cTelefono"]->getValue()  ) ? "(" . $oDomicilio->aFields["cPrefijoTelefono"]->getValue() . ") ". $oDomicilio->aFields["cTelefono"]->getValue() :  $oDomicilio->aFields["cTelefono"]->getValue();
					$cFax = ( $oDomicilio->aFields["cPrefijoTelefono"]->getValue() && $oDomicilio->aFields["cFax"]->getValue()  ) ? "(" . $oDomicilio->aFields["cPrefijoTelefono"]->getValue() . ") ". $oDomicilio->aFields["cFax"]->getValue() :  $oDomicilio->aFields["cFax"]->getValue();
					list( $ncPais, $ncUbicacion ) = explode("|", $oDomicilio->aFields["ncUbicacion"]->getValue() );
					if ( $ncUbicacion  > 600 &&  $ncUbicacion  <= 647 )  $ncUbicacion  =  $ncUbicacion - 600;
					elseif ( $ncUbicacion  ==  157 )  $ncUbicacion  =  49;
					elseif ( $ncUbicacion  == 648 )  $ncUbicacion  =  51;
					elseif ( $ncUbicacion  == 2 || $ncUbicacion  == 122 )  $ncUbicacion  =  50;
					else	$ncUbicacion  =  "";
					$nExpos = 1;
					if ( $oRecordset->aFields["ncFuncion"] == 54 ) $nExpos += $oRecordset->aFields["ncCategoriaEstablecimiento"] ;
					$bOk  = $oDatabaseWeb->insert("tur_expos_organizadores",
							"id", $oRecordset->aFields["ncEstablecimiento"],
							"nombre", $oRecordset->aFields["cdEstablecimiento"],
							"direccion", $cDireccion,
							"altura", $oRecordset->aFields["nNumero"],
							"piso", $oRecordset->aFields["cPiso"],
							"expos", $nExpos,
							"Registro_Prestadores",  $oRecordset->aFields["nRegistroPrestadores"],
							"telefono", $cTelefono,
							"fax", $cFax,
							"email", $oRecordset->aFields["cEmail"],
							"web", $oRecordset->aFields["cPaginaWeb"],
							"activo", $oRecordset->aFields["bActivo"] ); //						"postal", $oRecordset->aFields["cPostal"],
				}
				addMessage("Se termino de publicar los organizadores");
			}
			if ( $ncFuncion == 20)
			{
				$oDatabaseWeb->execute("delete from tur_museos");
				$cSql = "select a.ncEstablecimiento, a.cHorarios,  a.cEntrada, i.cObservaciones as visitas, a.cObservaciones, ncDomicilio, a.cdEstablecimiento, a.cEmail, a.cPaginaWeb, ncCategoriaEstablecimiento, bActivo
						from gtEstablecimiento as a
						join gtEstablecimientoFuncion as i
							on i.ncEstablecimiento = a.ncEstablecimiento
							and ncFuncion = $ncFuncion
						WHERE bBaja = 0
						and a.ncEstablecimiento not in (SELECT ncEstablecimiento FROM gtEstablecimientoRotulo WHERE ncRotulo in (3,2,8) )
						";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$oDomicilio ->setValue( $oRecordset->aFields["ncDomicilio"] );

					$cTelefono = ( $oDomicilio->aFields["cPrefijoTelefono"]->getValue() && $oDomicilio->aFields["cTelefono"]->getValue()  ) ? "(" . $oDomicilio->aFields["cPrefijoTelefono"]->getValue() . ") ". $oDomicilio->aFields["cTelefono"]->getValue() :  $oDomicilio->aFields["cTelefono"]->getValue();
					list( $ncPais, $ncUbicacion ) = explode("|", $oDomicilio->aFields["ncUbicacion"]->getValue() );
					if ( $ncUbicacion  > 600 &&  $ncUbicacion  <= 647 )  $ncUbicacion  =  $ncUbicacion - 600;
					elseif ( $ncUbicacion  ==  157 )  $ncUbicacion  =  49;
					elseif ( $ncUbicacion  == 648 )  $ncUbicacion  =  51;
					elseif ( $ncUbicacion  == 2 || $ncUbicacion  == 122 )  $ncUbicacion  =  50;
					else	$ncUbicacion  =  "";
					$bOk  = $oDatabaseWeb->insert("tur_museos",
							"id", $oRecordset->aFields["ncEstablecimiento"],
							"nombre", $oRecordset->aFields["cdEstablecimiento"],
							"direccion", $oDomicilio->getDescription(),
							"idBarrio",$ncUbicacion ,
							"idTipoMuseo", $oRecordset->aFields["ncCategoriaEstablecimiento"],
							"entrada", transalteEntrada( $oRecordset->aFields["cEntrada"], "es" ),
							"descripcion_es", extractLanguage( $oRecordset->aFields["cObservaciones"], "es" ),
							"descripcion_en", extractLanguage( $oRecordset->aFields["cObservaciones"], "en" ),
							"descripcion_pt", extractLanguage( $oRecordset->aFields["cObservaciones"], "pt" ),
							"visitas_es", extractLanguage( $oRecordset->aFields["visitas"], "es" ),
							"visitas_en", extractLanguage( $oRecordset->aFields["visitas"], "en" ),
							"visitas_pt", extractLanguage( $oRecordset->aFields["visitas"], "pt" ),
							"telefono", $cTelefono,
							"email", $oRecordset->aFields["cEmail"],
							"web", $oRecordset->aFields["cPaginaWeb"],
							"horario", transalteHorario($oRecordset->aFields["cHorarios"], 'es'),
							"activo", $oRecordset->aFields["bActivo"] ); //						"postal", $oRecordset->aFields["cPostal"],
				}
				addMessage("Se termino de publicar los museos");
			}
			if ( $ncFuncion == 24 )
			{
				$oDatabaseWeb->execute("delete from tur_restaurantes");
				$oDatabaseWeb->execute("delete from tur_restos_cat");
				$oDatabaseWeb->execute("delete from tur_restos_servicios");
				$cSql = "select a.ncEstablecimiento, a.cdEstablecimiento, case when h.cDescripcion then h.cDescripcion else cCalle end as cdCalle, nNumero, (ncUbicacion -600 ) as ncBarrio, c.cTelefono, a.cEmail, a.cPaginaWeb, cPostal, nqCapacidad, nPrecioPromedioNocturno, ncAmbientacion, ifnull(a.cHorarios, i.cHorarios) as cHorarios, nRegistroPrestadores, max(ncTipoCocina) as ncTipoCocina,  max(case when ncFormaPago in (2,3,4,5,8,9,10,11,12,13,14 ) then 1 else 0 end) as tarjetas, max(case when ncFormaPago in (6,7) then 1 else 0 end) as moneda_extranjera, max(case when ncFormaPago = 1 then 1 else 0 end) as traveller, cPrefijoTelefono,
						max(case when ncServicio = 10 or ncServicio = 17 then 1 else 0 end) as discapacitados, bActivo
						from gtEstablecimiento as a
						join gtGastronomia as b on b.ncEstablecimiento = a.ncEstablecimiento
						join atDomicilio as c on a.ncDomicilio = c.ncDomicilio
						left join atDomicilioUrbano as d on d.ncDomicilio = c.ncDomicilio
						left join atDomicilioSuburbano as h on h.ncDomicilio = c.ncDomicilio
						left join gtEstablecimientoFormaPago as e on e.ncEstablecimiento = a.ncEstablecimiento
						left join gtGastronomiaTipoCocina as f on f.ncEstablecimiento = a.ncEstablecimiento
						left join gtEstablecimientoServicio as g on g.ncEstablecimiento = a.ncEstablecimiento
						join gtEstablecimientoFuncion as i on i.ncEstablecimiento = a.ncEstablecimiento and ncFuncion = 24
						WHERE bBaja = 0
						and a.ncEstablecimiento not in (SELECT ncEstablecimiento FROM gtEstablecimientoRotulo WHERE ncRotulo in (3,2,7,8) )
						group by a.ncEstablecimiento, a.cdEstablecimiento, cdCalle, nNumero, ncBarrio, cPrefijoTelefono, c.cTelefono, a.cEmail, a.cPaginaWeb, cPostal, nqCapacidad, nPrecioPromedioNocturno, ncAmbientacion, i.cHorarios, nRegistroPrestadores, bActivo	";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$cTelefono = ( $oRecordset->aFields["cPrefijoTelefono"] && $oRecordset->aFields["cTelefono"]  ) ? "( " . $oRecordset->aFields["cPrefijoTelefono"] . " ) ". $oRecordset->aFields["cTelefono"] :  $oRecordset->aFields["cTelefono"];
					$bOk  = $oDatabaseWeb->insert("tur_restaurantes",
							"id", $oRecordset->aFields["ncEstablecimiento"],
							"nombre", $oRecordset->aFields["cdEstablecimiento"],
							"direccion", $oRecordset->aFields["cdCalle"],
							"altura", $oRecordset->aFields["nNumero"],
							"idBarrio", $oRecordset->aFields["ncBarrio"],
							"telefono", $cTelefono,
							"email", $oRecordset->aFields["cEmail"],
							"web", $oRecordset->aFields["cPaginaWeb"],
							"capacidad", $oRecordset->aFields["nqCapacidad"],
							"preciopromedio", $oRecordset->aFields["nPrecioPromedioNocturno"],
							"idAmbientacion", $oRecordset->aFields["ncAmbientacion"],
							"horarios", transalteHorario( $oRecordset->aFields["cHorarios"], "es" ),
							"Registro_Prestadores",  $oRecordset->aFields["nRegistroPrestadores"],
							"idTipoCocina", $oRecordset->aFields["ncTipoCocina"],
							"tarjetas", $oRecordset->aFields["tarjetas"],
							"traveller", $oRecordset->aFields["traveller"],
							"moneda_extranjera", $oRecordset->aFields["moneda_extranjera"],
							"discapacitados", $oRecordset->aFields["discapacitados"],
							"activo", $oRecordset->aFields["bActivo"] ); //						"postal", $oRecordset->aFields["cPostal"],
				}
				$cSql = "select ncEstablecimiento, ncTipoGastronomia
						from gtGastronomiaTipo";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$bOk  = $oDatabaseWeb->insert("tur_restos_cat",
							"id", $oRecordset->aFields["ncEstablecimiento"].$oRecordset->aFields["ncTipoGastronomia"],
							"idRestaurante", $oRecordset->aFields["ncEstablecimiento"],
							"idCategoria", $oRecordset->aFields["ncTipoGastronomia"] );
				}
				$cSql = "select ncEstablecimiento, ncServicio
						from gtEstablecimientoServicio ";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$bOk  = $oDatabaseWeb->insert("tur_restos_servicios",
							"id", $oRecordset->aFields["ncEstablecimiento"].$oRecordset->aFields["ncServicio"],
							"idrestaurante", $oRecordset->aFields["ncEstablecimiento"],
							"idservicio", $oRecordset->aFields["ncServicio"] );
				}
				$cSql = "select ncEstablecimiento, ncIdioma
						from gtEstablecimientoIdioma ";
				$oRecordset = $this->oDatabase->recordset($cSql);
				while ( $oRecordset->moveNext() )
				{
					$bOk  = $oDatabaseWeb->insert("tur_restos_idiomas",
							"id", $oRecordset->aFields["ncEstablecimiento"].$oRecordset->aFields["ncIdioma"],
							"idrestaurante", $oRecordset->aFields["ncEstablecimiento"],
							"ididioma", $oRecordset->aFields["ncIdioma"] );
				}
				addMessage("Se termino de publicar los establecimientos de gastronomia");
			}
		}
*/
?>